﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RegistroMascotas.Modelo;
using Data;
using Service;

namespace RegistroMascotas2
{
    public partial class hacer_denuncia : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                panelOculto.Visible = false;

                if (User.Identity.Name != "")
                {
                    nombreDenunciante.Visible = false;
                    dniDenunciante.Visible = false;
                    pDenunciante.Visible = false;
                    pDniDenunciante.Visible = false;


                    if (Session["TipoUsuario"].ToString() == "Admin")
                    {
                        Persona usuarioLogueado;
                        usuarioLogueado = (Persona)PersonaDAO.traerDatosUsuario(User.Identity.Name);
                        dniDenunciante.Text = "00000000";
                        nombreDenunciante.Text = usuarioLogueado.Nombre;
                    }
                    else if (Session["TipoUsuario"].ToString() == "Centro")
                    {
                        Centro usuarioLogueado;
                        usuarioLogueado = (Centro)PersonaDAO.traerDatosUsuario(User.Identity.Name);
                        dniDenunciante.Text = usuarioLogueado.Cuit.ToString();
                        nombreDenunciante.Text = usuarioLogueado.Nombre;
                    }
                    else if (Session["TipoUsuario"].ToString() == "Dueño")
                    {
                        Dueño usuarioLogueado;
                        usuarioLogueado = (Dueño)PersonaDAO.traerDatosUsuario(User.Identity.Name);
                        dniDenunciante.Text = usuarioLogueado.Dni.ToString();
                        nombreDenunciante.Text = usuarioLogueado.Nombre;
                    }
                    else
                    {
                        Veterinario usuarioLogueado;
                        usuarioLogueado = (Veterinario)PersonaDAO.traerDatosUsuario(User.Identity.Name);
                        dniDenunciante.Text = usuarioLogueado.Matricula.ToString();
                        nombreDenunciante.Text = usuarioLogueado.Nombre;
                    }
                }
            }
        }

        protected void btnVolver_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/index.aspx");
        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            Persona p = null;
            Denuncia d = null;
            long dniMatri = 0;
            bool exito = false;

            try
            {
                p = new Persona();
                d = new Denuncia();

                p.Nombre = nombre.Text;
                p.Telefono = telefono.Text;
                p.Localidad = localidad.Text;
                p.Direccion = direccion.Text;

                if (dniMatricula.Text != "")
                    dniMatri = long.Parse(dniMatricula.Text);
                else
                    dniMatri = 0;

                d.Persona = p;
                d.Motivo = causas.Text;
                d.Facebook = facebook.Text;
                d.Estado = EstadoDenuncia.PendienteDeAprobacion.ToString();
                d.NombreDenunciante = nombreDenunciante.Text;

                if (dniDenunciante.Text != "")
                    d.DniDenunciante = long.Parse(dniDenunciante.Text);
                else
                    d.DniDenunciante = 0;

                exito = GestorDeDenuncias.crearDenuncia(d, dniMatri);

                panelOculto.Visible = true;
                limpiarControles();
                lblError.Text = "La denuncia fue creada con éxito.";
            }
            catch (Exception ex)
            {
                panelOculto.Visible = true;
                lblError.CssClass = "errores";
                lblError.Text = ex.Message;
            }
        }

        private void limpiarControles() {
            telefono.Text = "";
            nombre.Text="";
            direccion.Text = "";
            facebook.Text = "";
            dniDenunciante.Text = "";
            dniMatricula.Text = "";
            nombreDenunciante.Text = "";
            localidad.Text = "";
            causas.Text = "";
        }
    }
}